package datastructure
{
	/**
	 * 最小堆算法 
	 * @author juxuan
	 * 
	 */	
	public class MinHeap
	{
		
		private var H:Array = null;	//传进的无序数组
		
		public function MinHeap(h:Array)
		{
			var length:int = h.length;
			for(var i:int = length/2;i > 0; i--)
			{
				var k:int = i;
				var v:int = h[k];
				var heap:Boolean = false;
				while(!heap && (2*k <= length))
				{
					var j:int = 2 * k;
					if(j < n)
					{
						if(h[j] < h[j+1])
						{
							j = j + 1;
						}
					}
					if(v >= h[j])
					{
						heap = true;
					}	
					else
					{
						h[k] = h[j];
						k = j;
					}
				}
				h[k] = v;
			}	
		}
		
		
		/**
		 * 删除根节点，并返回 
		 * @return 
		 * 
		 */		
		public function pop():int
		{
			
		}
		
		
		/**
		 * 根据节点的某个属性来排序 
		 * 
		 */		
		public function sortOn():void
		{
			
		}
		
		/**
		 * 向堆里面插入新的元素 
		 * @param K
		 * @return 
		 * 
		 */		
		public function insert(K:int):Boolean
		{
			return false;
		}
		
		
		
		
		
		
		
	}
}